package main

import "fmt"

/*
1、介绍
(1)常量使用const修改
(2)常量在定义的时候，必须初始化
(3)常量不能修改
(4)常量只能修饰bool、数值类型(int、float系列)、string类型
(5)语法：const identifier [type] =value
(6)举例说明，看看下面的写法是否正确：
const name="tom" //ok
const tax float64=0.8 //ok
const a int //error
const b=9/3 //ok
const c = getVal() //error
2、注意事项
(1)比较简洁的写法
const(
	a=1
	b=2
)
(2)专业的写法
const(
	a=iota
	b
	c
	d
)
表示给a赋值为0，b在a的基础上+1，c在b的基础上+1，这种写法比较专业
(3)go中没有常量名必须字母大写的规范，比如TAX_RATE
(4)仍然通过首字母的大小写来控制常量的访问范围
*/
func main() {
	// var num int
	//常量声明的时候，必须赋值
	const tax int = 0
	fmt.Println("tax=", tax)

	const num = 9 / 3
	fmt.Println(num)

	//iota是一个预定义的标识符，代表顺序按行增加的无符号整数，每个const声明单元（被括号括起来）相互独立，分别从0开始。
	const (
		a = iota
		b
		c
		d
	)
	fmt.Println(a, b, c, d) //0 1 2 3

	const (
		h    = iota
		i    = iota
		j, k = iota, iota
	)
	fmt.Println(h, i, j, k) //0 1 2 2
}
